Location: The Physics of Physiology - Example 3: An electromechanical system @ 40e27e2bbfad / FAIRDO BG example 3.3.cellml

Author:
David Nickerson <david.nickerson@gmail.com>
Date:
2024-01-11 16:08:49+13:00
Desc:
correct (unused) document title
Permanent Source URI:
https://models.physiomeproject.org/workspace/aef/rawfile/40e27e2bbfada4f5439f434de5a333b9b4bf83f3/FAIRDO BG example 3.3.cellml

<?xml version='1.0' encoding='UTF-8'?>
<model name="BG3" xmlns="http://www.cellml.org/cellml/1.0#" xmlns:cellml="http://www.cellml.org/cellml/1.0#">
    <!-- Bond graph model of a coupled electrical-mechanical system (voice coil)-->
    <!-- electrical units-->
    <units name="per_s">
        <unit exponent="-1" units="second"/>
    </units>
    <units name="C_per_s">
        <unit units="coulomb"/>
        <unit exponent="-1" units="second"/>
    </units>
    <units name="C_per_s2">
        <unit units="coulomb"/>
        <unit exponent="-2" units="second"/>
    </units>
    <units name="J_per_C">
        <unit units="joule"/>
        <unit exponent="-1" units="coulomb"/>
    </units>
    <units name="J_per_C2">
        <unit units="joule"/>
        <unit exponent="-2" units="coulomb"/>
    </units>
    <units name="Js_per_C2">
        <unit units="joule"/>
        <unit units="second"/>
        <unit exponent="-2" units="coulomb"/>
    </units>
    <units name="Js2_per_C2">
        <unit units="joule"/>
        <unit exponent="2" units="second"/>
        <unit exponent="-2" units="coulomb"/>
    </units>
    <!--TF units-->
    <units name="Js_per_C_m">
        <unit units="joule"/>
        <unit units="second"/>
        <unit exponent="-1" units="coulomb"/>
        <unit exponent="-1" units="metre"/>
    </units>
    <!--mechanical units-->
    <units name="m_per_s">
        <unit units="metre"/>
        <unit exponent="-1" units="second"/>
    </units>
    <units name="m_per_s2">
        <unit units="metre"/>
        <unit exponent="-2" units="second"/>
    </units>
    <units name="J_per_m">
        <unit units="joule"/>
        <unit exponent="-1" units="metre"/>
    </units>
    <units name="J_per_m2">
        <unit units="joule"/>
        <unit exponent="-2" units="metre"/>
    </units>
    <units name="Js_per_m2">
        <unit units="joule"/>
        <unit units="second"/>
        <unit exponent="-2" units="metre"/>
    </units>
    <units name="Js2_per_m2">
        <unit units="joule"/>
        <unit exponent="2" units="second"/>
        <unit exponent="-2" units="metre"/>
    </units>
    <component name="Environment">
        <variable name="u_in_e" public_interface="out" units="J_per_C"/>
        <variable initial_value="0" name="t" public_interface="out" units="second"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>u_in_e</ci>
                <apply>
                    <times/>
                    <cn cellml:units="J_per_C">50</cn>
                    <apply>
                        <sin/>
                        <apply>
                            <times/>
                            <cn cellml:units="per_s">50</cn>
                            <cn cellml:units="dimensionless">2</cn>
                            <pi/>
                            <ci>t</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
        </math>
    </component>
    <component name="Voice_coil_equations">
        <!-- State variables-->
        <variable name="t" public_interface="in" units="second"/>
        <variable initial_value="0" name="v_1_e" units="C_per_s"/>
        <variable name="a_1_e" units="C_per_s2"/>
        <variable initial_value="0" name="q_C_m" units="metre"/>
        <variable initial_value="0" name="v_2_m" units="m_per_s"/>
        <variable name="a_2_m" units="m_per_s2"/>
        <variable name="u_in_e" public_interface="in" units="J_per_C"/>
        <variable name="u_R_e" units="J_per_C"/>
        <variable name="u_L_e" units="J_per_C"/>
        <variable name="u_1_e" units="J_per_C"/>
        <variable name="u_2_m" units="J_per_m"/>
        <variable name="u_C_m" units="J_per_m"/>
        <variable name="u_R_m" units="J_per_m"/>
        <variable name="u_L_m" units="J_per_m"/>
        <!-- Constitutive parameters -->
        <variable initial_value="1" name="E_1" units="J_per_C2"/>
        <variable initial_value="100" name="E_2" units="J_per_m2"/>
        <variable initial_value="5" name="R_1_e" units="Js_per_C2"/>
        <variable initial_value="0.4" name="R_2_m" units="Js_per_m2"/>
        <variable initial_value="0.2" name="L_1_e" units="Js2_per_C2"/>
        <variable initial_value="0.01" name="L_2_m" units="Js2_per_m2"/>
        <!-- TF parameters: this depends on the number of coil turns and the magnetic flux.-->
        <variable initial_value="6" name="Bl" units="Js_per_C_m"/>
        <!-- Conservation laws-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>v_1_e</ci>
                </apply>
                <ci>a_1_e</ci>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>q_C_m</ci>
                </apply>
                <ci>v_2_m</ci>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>v_2_m</ci>
                </apply>
                <ci>a_2_m</ci>
            </apply>
            <apply>
                <eq/>
                <ci>u_in_e</ci>
                <apply>
                    <plus/>
                    <ci>u_R_e</ci>
                    <ci>u_L_e</ci>
                    <ci>u_1_e</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_2_m</ci>
                <apply>
                    <plus/>
                    <ci>u_C_m</ci>
                    <ci>u_R_m</ci>
                    <ci>u_L_m</ci>
                </apply>
            </apply>
            <!-- Constitutive relations-->
            <apply>
                <eq/>
                <ci>u_R_e</ci>
                <apply>
                    <times/>
                    <ci>R_1_e</ci>
                    <ci>v_1_e</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_L_e</ci>
                <apply>
                    <times/>
                    <ci>L_1_e</ci>
                    <ci>a_1_e</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_1_e</ci>
                <apply>
                    <times/>
                    <ci>Bl</ci>
                    <ci>v_2_m</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_2_m</ci>
                <apply>
                    <times/>
                    <ci>Bl</ci>
                    <ci>v_1_e</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_C_m</ci>
                <apply>
                    <times/>
                    <ci>E_2</ci>
                    <ci>q_C_m</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_R_m</ci>
                <apply>
                    <times/>
                    <ci>R_2_m</ci>
                    <ci>v_2_m</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_L_m</ci>
                <apply>
                    <times/>
                    <ci>L_2_m</ci>
                    <ci>a_2_m</ci>
                </apply>
            </apply>
        </math>
    </component>
    <connection>
        <map_components component_1="Environment" component_2="Voice_coil_equations"/>
        <map_variables variable_1="u_in_e" variable_2="u_in_e"/>
        <map_variables variable_1="t" variable_2="t"/>
    </connection>
</model>